package sk.scerbak.ucl.datamodel.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import sk.scerbak.ucl.datamodel.services.DatamodelGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalDatamodelParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_UPID", "RULE_EMPTY", "RULE_CHAR", "RULE_UPCHAR", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "','", "'('", "')'", "'/'", "'package'", "':'", "'-'", "'import'", "'.'", "'.*'"
    };
    public static final int RULE_ID=4;
    public static final int RULE_UPCHAR=8;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=14;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int RULE_SL_COMMENT=12;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=11;
    public static final int T__19=19;
    public static final int RULE_EMPTY=6;
    public static final int RULE_STRING=10;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int RULE_UPID=5;
    public static final int RULE_INT=9;
    public static final int RULE_CHAR=7;
    public static final int RULE_WS=13;

    // delegates
    // delegators


        public InternalDatamodelParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalDatamodelParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalDatamodelParser.tokenNames; }
    public String getGrammarFileName() { return "../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g"; }


     
     	private DatamodelGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(DatamodelGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleModel"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:60:1: entryRuleModel : ruleModel EOF ;
    public final void entryRuleModel() throws RecognitionException {
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:61:1: ( ruleModel EOF )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:62:1: ruleModel EOF
            {
             before(grammarAccess.getModelRule()); 
            pushFollow(FOLLOW_ruleModel_in_entryRuleModel61);
            ruleModel();

            state._fsp--;

             after(grammarAccess.getModelRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleModel68); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleModel"


    // $ANTLR start "ruleModel"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:69:1: ruleModel : ( ( rule__Model__Group__0 ) ) ;
    public final void ruleModel() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:73:2: ( ( ( rule__Model__Group__0 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:74:1: ( ( rule__Model__Group__0 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:74:1: ( ( rule__Model__Group__0 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:75:1: ( rule__Model__Group__0 )
            {
             before(grammarAccess.getModelAccess().getGroup()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:76:1: ( rule__Model__Group__0 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:76:2: rule__Model__Group__0
            {
            pushFollow(FOLLOW_rule__Model__Group__0_in_ruleModel94);
            rule__Model__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getModelAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleModel"


    // $ANTLR start "entryRulePackage"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:88:1: entryRulePackage : rulePackage EOF ;
    public final void entryRulePackage() throws RecognitionException {
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:89:1: ( rulePackage EOF )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:90:1: rulePackage EOF
            {
             before(grammarAccess.getPackageRule()); 
            pushFollow(FOLLOW_rulePackage_in_entryRulePackage121);
            rulePackage();

            state._fsp--;

             after(grammarAccess.getPackageRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRulePackage128); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePackage"


    // $ANTLR start "rulePackage"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:97:1: rulePackage : ( ( rule__Package__Group__0 ) ) ;
    public final void rulePackage() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:101:2: ( ( ( rule__Package__Group__0 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:102:1: ( ( rule__Package__Group__0 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:102:1: ( ( rule__Package__Group__0 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:103:1: ( rule__Package__Group__0 )
            {
             before(grammarAccess.getPackageAccess().getGroup()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:104:1: ( rule__Package__Group__0 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:104:2: rule__Package__Group__0
            {
            pushFollow(FOLLOW_rule__Package__Group__0_in_rulePackage154);
            rule__Package__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getPackageAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePackage"


    // $ANTLR start "entryRuleData"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:116:1: entryRuleData : ruleData EOF ;
    public final void entryRuleData() throws RecognitionException {
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:117:1: ( ruleData EOF )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:118:1: ruleData EOF
            {
             before(grammarAccess.getDataRule()); 
            pushFollow(FOLLOW_ruleData_in_entryRuleData181);
            ruleData();

            state._fsp--;

             after(grammarAccess.getDataRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleData188); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleData"


    // $ANTLR start "ruleData"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:125:1: ruleData : ( ( rule__Data__Group__0 ) ) ;
    public final void ruleData() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:129:2: ( ( ( rule__Data__Group__0 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:130:1: ( ( rule__Data__Group__0 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:130:1: ( ( rule__Data__Group__0 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:131:1: ( rule__Data__Group__0 )
            {
             before(grammarAccess.getDataAccess().getGroup()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:132:1: ( rule__Data__Group__0 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:132:2: rule__Data__Group__0
            {
            pushFollow(FOLLOW_rule__Data__Group__0_in_ruleData214);
            rule__Data__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getDataAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleData"


    // $ANTLR start "entryRulePlainText"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:146:1: entryRulePlainText : rulePlainText EOF ;
    public final void entryRulePlainText() throws RecognitionException {
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:147:1: ( rulePlainText EOF )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:148:1: rulePlainText EOF
            {
             before(grammarAccess.getPlainTextRule()); 
            pushFollow(FOLLOW_rulePlainText_in_entryRulePlainText243);
            rulePlainText();

            state._fsp--;

             after(grammarAccess.getPlainTextRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRulePlainText250); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePlainText"


    // $ANTLR start "rulePlainText"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:155:1: rulePlainText : ( ( rule__PlainText__Group__0 ) ) ;
    public final void rulePlainText() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:159:2: ( ( ( rule__PlainText__Group__0 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:160:1: ( ( rule__PlainText__Group__0 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:160:1: ( ( rule__PlainText__Group__0 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:161:1: ( rule__PlainText__Group__0 )
            {
             before(grammarAccess.getPlainTextAccess().getGroup()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:162:1: ( rule__PlainText__Group__0 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:162:2: rule__PlainText__Group__0
            {
            pushFollow(FOLLOW_rule__PlainText__Group__0_in_rulePlainText276);
            rule__PlainText__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getPlainTextAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePlainText"


    // $ANTLR start "entryRuleNAME"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:174:1: entryRuleNAME : ruleNAME EOF ;
    public final void entryRuleNAME() throws RecognitionException {
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:175:1: ( ruleNAME EOF )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:176:1: ruleNAME EOF
            {
             before(grammarAccess.getNAMERule()); 
            pushFollow(FOLLOW_ruleNAME_in_entryRuleNAME303);
            ruleNAME();

            state._fsp--;

             after(grammarAccess.getNAMERule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNAME310); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleNAME"


    // $ANTLR start "ruleNAME"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:183:1: ruleNAME : ( ( rule__NAME__Group__0 ) ) ;
    public final void ruleNAME() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:187:2: ( ( ( rule__NAME__Group__0 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:188:1: ( ( rule__NAME__Group__0 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:188:1: ( ( rule__NAME__Group__0 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:189:1: ( rule__NAME__Group__0 )
            {
             before(grammarAccess.getNAMEAccess().getGroup()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:190:1: ( rule__NAME__Group__0 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:190:2: rule__NAME__Group__0
            {
            pushFollow(FOLLOW_rule__NAME__Group__0_in_ruleNAME336);
            rule__NAME__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getNAMEAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleNAME"


    // $ANTLR start "entryRuleImport"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:202:1: entryRuleImport : ruleImport EOF ;
    public final void entryRuleImport() throws RecognitionException {
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:203:1: ( ruleImport EOF )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:204:1: ruleImport EOF
            {
             before(grammarAccess.getImportRule()); 
            pushFollow(FOLLOW_ruleImport_in_entryRuleImport363);
            ruleImport();

            state._fsp--;

             after(grammarAccess.getImportRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleImport370); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleImport"


    // $ANTLR start "ruleImport"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:211:1: ruleImport : ( ( rule__Import__Group__0 ) ) ;
    public final void ruleImport() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:215:2: ( ( ( rule__Import__Group__0 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:216:1: ( ( rule__Import__Group__0 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:216:1: ( ( rule__Import__Group__0 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:217:1: ( rule__Import__Group__0 )
            {
             before(grammarAccess.getImportAccess().getGroup()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:218:1: ( rule__Import__Group__0 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:218:2: rule__Import__Group__0
            {
            pushFollow(FOLLOW_rule__Import__Group__0_in_ruleImport396);
            rule__Import__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getImportAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleImport"


    // $ANTLR start "entryRuleQualifiedName"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:230:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
    public final void entryRuleQualifiedName() throws RecognitionException {
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:231:1: ( ruleQualifiedName EOF )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:232:1: ruleQualifiedName EOF
            {
             before(grammarAccess.getQualifiedNameRule()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName423);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getQualifiedNameRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName430); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQualifiedName"


    // $ANTLR start "ruleQualifiedName"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:239:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
    public final void ruleQualifiedName() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:243:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:244:1: ( ( rule__QualifiedName__Group__0 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:244:1: ( ( rule__QualifiedName__Group__0 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:245:1: ( rule__QualifiedName__Group__0 )
            {
             before(grammarAccess.getQualifiedNameAccess().getGroup()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:246:1: ( rule__QualifiedName__Group__0 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:246:2: rule__QualifiedName__Group__0
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName456);
            rule__QualifiedName__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getQualifiedNameAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQualifiedName"


    // $ANTLR start "entryRuleQualifiedNameWithWildcard"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:258:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
    public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:259:1: ( ruleQualifiedNameWithWildcard EOF )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:260:1: ruleQualifiedNameWithWildcard EOF
            {
             before(grammarAccess.getQualifiedNameWithWildcardRule()); 
            pushFollow(FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard483);
            ruleQualifiedNameWithWildcard();

            state._fsp--;

             after(grammarAccess.getQualifiedNameWithWildcardRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard490); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQualifiedNameWithWildcard"


    // $ANTLR start "ruleQualifiedNameWithWildcard"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:267:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
    public final void ruleQualifiedNameWithWildcard() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:271:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:272:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:272:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:273:1: ( rule__QualifiedNameWithWildcard__Group__0 )
            {
             before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:274:1: ( rule__QualifiedNameWithWildcard__Group__0 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:274:2: rule__QualifiedNameWithWildcard__Group__0
            {
            pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__0_in_ruleQualifiedNameWithWildcard516);
            rule__QualifiedNameWithWildcard__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQualifiedNameWithWildcard"


    // $ANTLR start "rule__PlainText__Alternatives_1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:286:1: rule__PlainText__Alternatives_1 : ( ( RULE_ID ) | ( ',' ) | ( '(' ) | ( ')' ) | ( '/' ) );
    public final void rule__PlainText__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:290:1: ( ( RULE_ID ) | ( ',' ) | ( '(' ) | ( ')' ) | ( '/' ) )
            int alt1=5;
            switch ( input.LA(1) ) {
            case RULE_ID:
                {
                alt1=1;
                }
                break;
            case 15:
                {
                alt1=2;
                }
                break;
            case 16:
                {
                alt1=3;
                }
                break;
            case 17:
                {
                alt1=4;
                }
                break;
            case 18:
                {
                alt1=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }

            switch (alt1) {
                case 1 :
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:291:1: ( RULE_ID )
                    {
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:291:1: ( RULE_ID )
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:292:1: RULE_ID
                    {
                     before(grammarAccess.getPlainTextAccess().getIDTerminalRuleCall_1_0()); 
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PlainText__Alternatives_1552); 
                     after(grammarAccess.getPlainTextAccess().getIDTerminalRuleCall_1_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:297:6: ( ',' )
                    {
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:297:6: ( ',' )
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:298:1: ','
                    {
                     before(grammarAccess.getPlainTextAccess().getCommaKeyword_1_1()); 
                    match(input,15,FOLLOW_15_in_rule__PlainText__Alternatives_1570); 
                     after(grammarAccess.getPlainTextAccess().getCommaKeyword_1_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:305:6: ( '(' )
                    {
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:305:6: ( '(' )
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:306:1: '('
                    {
                     before(grammarAccess.getPlainTextAccess().getLeftParenthesisKeyword_1_2()); 
                    match(input,16,FOLLOW_16_in_rule__PlainText__Alternatives_1590); 
                     after(grammarAccess.getPlainTextAccess().getLeftParenthesisKeyword_1_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:313:6: ( ')' )
                    {
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:313:6: ( ')' )
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:314:1: ')'
                    {
                     before(grammarAccess.getPlainTextAccess().getRightParenthesisKeyword_1_3()); 
                    match(input,17,FOLLOW_17_in_rule__PlainText__Alternatives_1610); 
                     after(grammarAccess.getPlainTextAccess().getRightParenthesisKeyword_1_3()); 

                    }


                    }
                    break;
                case 5 :
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:321:6: ( '/' )
                    {
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:321:6: ( '/' )
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:322:1: '/'
                    {
                     before(grammarAccess.getPlainTextAccess().getSolidusKeyword_1_4()); 
                    match(input,18,FOLLOW_18_in_rule__PlainText__Alternatives_1630); 
                     after(grammarAccess.getPlainTextAccess().getSolidusKeyword_1_4()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlainText__Alternatives_1"


    // $ANTLR start "rule__Model__Group__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:336:1: rule__Model__Group__0 : rule__Model__Group__0__Impl rule__Model__Group__1 ;
    public final void rule__Model__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:340:1: ( rule__Model__Group__0__Impl rule__Model__Group__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:341:2: rule__Model__Group__0__Impl rule__Model__Group__1
            {
            pushFollow(FOLLOW_rule__Model__Group__0__Impl_in_rule__Model__Group__0662);
            rule__Model__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Model__Group__1_in_rule__Model__Group__0665);
            rule__Model__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__0"


    // $ANTLR start "rule__Model__Group__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:348:1: rule__Model__Group__0__Impl : ( ( rule__Model__ImportsAssignment_0 )* ) ;
    public final void rule__Model__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:352:1: ( ( ( rule__Model__ImportsAssignment_0 )* ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:353:1: ( ( rule__Model__ImportsAssignment_0 )* )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:353:1: ( ( rule__Model__ImportsAssignment_0 )* )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:354:1: ( rule__Model__ImportsAssignment_0 )*
            {
             before(grammarAccess.getModelAccess().getImportsAssignment_0()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:355:1: ( rule__Model__ImportsAssignment_0 )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0==22) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:355:2: rule__Model__ImportsAssignment_0
            	    {
            	    pushFollow(FOLLOW_rule__Model__ImportsAssignment_0_in_rule__Model__Group__0__Impl692);
            	    rule__Model__ImportsAssignment_0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);

             after(grammarAccess.getModelAccess().getImportsAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__0__Impl"


    // $ANTLR start "rule__Model__Group__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:365:1: rule__Model__Group__1 : rule__Model__Group__1__Impl ;
    public final void rule__Model__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:369:1: ( rule__Model__Group__1__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:370:2: rule__Model__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Model__Group__1__Impl_in_rule__Model__Group__1723);
            rule__Model__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__1"


    // $ANTLR start "rule__Model__Group__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:376:1: rule__Model__Group__1__Impl : ( ( rule__Model__PackageAssignment_1 ) ) ;
    public final void rule__Model__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:380:1: ( ( ( rule__Model__PackageAssignment_1 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:381:1: ( ( rule__Model__PackageAssignment_1 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:381:1: ( ( rule__Model__PackageAssignment_1 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:382:1: ( rule__Model__PackageAssignment_1 )
            {
             before(grammarAccess.getModelAccess().getPackageAssignment_1()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:383:1: ( rule__Model__PackageAssignment_1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:383:2: rule__Model__PackageAssignment_1
            {
            pushFollow(FOLLOW_rule__Model__PackageAssignment_1_in_rule__Model__Group__1__Impl750);
            rule__Model__PackageAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getModelAccess().getPackageAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__1__Impl"


    // $ANTLR start "rule__Package__Group__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:397:1: rule__Package__Group__0 : rule__Package__Group__0__Impl rule__Package__Group__1 ;
    public final void rule__Package__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:401:1: ( rule__Package__Group__0__Impl rule__Package__Group__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:402:2: rule__Package__Group__0__Impl rule__Package__Group__1
            {
            pushFollow(FOLLOW_rule__Package__Group__0__Impl_in_rule__Package__Group__0784);
            rule__Package__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Package__Group__1_in_rule__Package__Group__0787);
            rule__Package__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__Group__0"


    // $ANTLR start "rule__Package__Group__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:409:1: rule__Package__Group__0__Impl : ( 'package' ) ;
    public final void rule__Package__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:413:1: ( ( 'package' ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:414:1: ( 'package' )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:414:1: ( 'package' )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:415:1: 'package'
            {
             before(grammarAccess.getPackageAccess().getPackageKeyword_0()); 
            match(input,19,FOLLOW_19_in_rule__Package__Group__0__Impl815); 
             after(grammarAccess.getPackageAccess().getPackageKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__Group__0__Impl"


    // $ANTLR start "rule__Package__Group__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:428:1: rule__Package__Group__1 : rule__Package__Group__1__Impl rule__Package__Group__2 ;
    public final void rule__Package__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:432:1: ( rule__Package__Group__1__Impl rule__Package__Group__2 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:433:2: rule__Package__Group__1__Impl rule__Package__Group__2
            {
            pushFollow(FOLLOW_rule__Package__Group__1__Impl_in_rule__Package__Group__1846);
            rule__Package__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Package__Group__2_in_rule__Package__Group__1849);
            rule__Package__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__Group__1"


    // $ANTLR start "rule__Package__Group__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:440:1: rule__Package__Group__1__Impl : ( ( rule__Package__NameAssignment_1 ) ) ;
    public final void rule__Package__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:444:1: ( ( ( rule__Package__NameAssignment_1 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:445:1: ( ( rule__Package__NameAssignment_1 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:445:1: ( ( rule__Package__NameAssignment_1 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:446:1: ( rule__Package__NameAssignment_1 )
            {
             before(grammarAccess.getPackageAccess().getNameAssignment_1()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:447:1: ( rule__Package__NameAssignment_1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:447:2: rule__Package__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Package__NameAssignment_1_in_rule__Package__Group__1__Impl876);
            rule__Package__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getPackageAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__Group__1__Impl"


    // $ANTLR start "rule__Package__Group__2"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:457:1: rule__Package__Group__2 : rule__Package__Group__2__Impl rule__Package__Group__3 ;
    public final void rule__Package__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:461:1: ( rule__Package__Group__2__Impl rule__Package__Group__3 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:462:2: rule__Package__Group__2__Impl rule__Package__Group__3
            {
            pushFollow(FOLLOW_rule__Package__Group__2__Impl_in_rule__Package__Group__2906);
            rule__Package__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Package__Group__3_in_rule__Package__Group__2909);
            rule__Package__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__Group__2"


    // $ANTLR start "rule__Package__Group__2__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:469:1: rule__Package__Group__2__Impl : ( ':' ) ;
    public final void rule__Package__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:473:1: ( ( ':' ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:474:1: ( ':' )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:474:1: ( ':' )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:475:1: ':'
            {
             before(grammarAccess.getPackageAccess().getColonKeyword_2()); 
            match(input,20,FOLLOW_20_in_rule__Package__Group__2__Impl937); 
             after(grammarAccess.getPackageAccess().getColonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__Group__2__Impl"


    // $ANTLR start "rule__Package__Group__3"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:488:1: rule__Package__Group__3 : rule__Package__Group__3__Impl ;
    public final void rule__Package__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:492:1: ( rule__Package__Group__3__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:493:2: rule__Package__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Package__Group__3__Impl_in_rule__Package__Group__3968);
            rule__Package__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__Group__3"


    // $ANTLR start "rule__Package__Group__3__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:499:1: rule__Package__Group__3__Impl : ( ( ( rule__Package__DataAssignment_3 ) ) ( ( rule__Package__DataAssignment_3 )* ) ) ;
    public final void rule__Package__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:503:1: ( ( ( ( rule__Package__DataAssignment_3 ) ) ( ( rule__Package__DataAssignment_3 )* ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:504:1: ( ( ( rule__Package__DataAssignment_3 ) ) ( ( rule__Package__DataAssignment_3 )* ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:504:1: ( ( ( rule__Package__DataAssignment_3 ) ) ( ( rule__Package__DataAssignment_3 )* ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:505:1: ( ( rule__Package__DataAssignment_3 ) ) ( ( rule__Package__DataAssignment_3 )* )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:505:1: ( ( rule__Package__DataAssignment_3 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:506:1: ( rule__Package__DataAssignment_3 )
            {
             before(grammarAccess.getPackageAccess().getDataAssignment_3()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:507:1: ( rule__Package__DataAssignment_3 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:507:2: rule__Package__DataAssignment_3
            {
            pushFollow(FOLLOW_rule__Package__DataAssignment_3_in_rule__Package__Group__3__Impl997);
            rule__Package__DataAssignment_3();

            state._fsp--;


            }

             after(grammarAccess.getPackageAccess().getDataAssignment_3()); 

            }

            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:510:1: ( ( rule__Package__DataAssignment_3 )* )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:511:1: ( rule__Package__DataAssignment_3 )*
            {
             before(grammarAccess.getPackageAccess().getDataAssignment_3()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:512:1: ( rule__Package__DataAssignment_3 )*
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0==RULE_UPID) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:512:2: rule__Package__DataAssignment_3
            	    {
            	    pushFollow(FOLLOW_rule__Package__DataAssignment_3_in_rule__Package__Group__3__Impl1009);
            	    rule__Package__DataAssignment_3();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop3;
                }
            } while (true);

             after(grammarAccess.getPackageAccess().getDataAssignment_3()); 

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__Group__3__Impl"


    // $ANTLR start "rule__Data__Group__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:531:1: rule__Data__Group__0 : rule__Data__Group__0__Impl rule__Data__Group__1 ;
    public final void rule__Data__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:535:1: ( rule__Data__Group__0__Impl rule__Data__Group__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:536:2: rule__Data__Group__0__Impl rule__Data__Group__1
            {
            pushFollow(FOLLOW_rule__Data__Group__0__Impl_in_rule__Data__Group__01050);
            rule__Data__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Data__Group__1_in_rule__Data__Group__01053);
            rule__Data__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__Group__0"


    // $ANTLR start "rule__Data__Group__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:543:1: rule__Data__Group__0__Impl : ( ( rule__Data__NameAssignment_0 ) ) ;
    public final void rule__Data__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:547:1: ( ( ( rule__Data__NameAssignment_0 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:548:1: ( ( rule__Data__NameAssignment_0 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:548:1: ( ( rule__Data__NameAssignment_0 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:549:1: ( rule__Data__NameAssignment_0 )
            {
             before(grammarAccess.getDataAccess().getNameAssignment_0()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:550:1: ( rule__Data__NameAssignment_0 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:550:2: rule__Data__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__Data__NameAssignment_0_in_rule__Data__Group__0__Impl1080);
            rule__Data__NameAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getDataAccess().getNameAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__Group__0__Impl"


    // $ANTLR start "rule__Data__Group__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:560:1: rule__Data__Group__1 : rule__Data__Group__1__Impl ;
    public final void rule__Data__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:564:1: ( rule__Data__Group__1__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:565:2: rule__Data__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Data__Group__1__Impl_in_rule__Data__Group__11110);
            rule__Data__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__Group__1"


    // $ANTLR start "rule__Data__Group__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:571:1: rule__Data__Group__1__Impl : ( ( rule__Data__Group_1__0 )? ) ;
    public final void rule__Data__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:575:1: ( ( ( rule__Data__Group_1__0 )? ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:576:1: ( ( rule__Data__Group_1__0 )? )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:576:1: ( ( rule__Data__Group_1__0 )? )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:577:1: ( rule__Data__Group_1__0 )?
            {
             before(grammarAccess.getDataAccess().getGroup_1()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:578:1: ( rule__Data__Group_1__0 )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==21) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:578:2: rule__Data__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Data__Group_1__0_in_rule__Data__Group__1__Impl1137);
                    rule__Data__Group_1__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getDataAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__Group__1__Impl"


    // $ANTLR start "rule__Data__Group_1__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:592:1: rule__Data__Group_1__0 : rule__Data__Group_1__0__Impl rule__Data__Group_1__1 ;
    public final void rule__Data__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:596:1: ( rule__Data__Group_1__0__Impl rule__Data__Group_1__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:597:2: rule__Data__Group_1__0__Impl rule__Data__Group_1__1
            {
            pushFollow(FOLLOW_rule__Data__Group_1__0__Impl_in_rule__Data__Group_1__01172);
            rule__Data__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Data__Group_1__1_in_rule__Data__Group_1__01175);
            rule__Data__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__Group_1__0"


    // $ANTLR start "rule__Data__Group_1__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:604:1: rule__Data__Group_1__0__Impl : ( '-' ) ;
    public final void rule__Data__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:608:1: ( ( '-' ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:609:1: ( '-' )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:609:1: ( '-' )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:610:1: '-'
            {
             before(grammarAccess.getDataAccess().getHyphenMinusKeyword_1_0()); 
            match(input,21,FOLLOW_21_in_rule__Data__Group_1__0__Impl1203); 
             after(grammarAccess.getDataAccess().getHyphenMinusKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__Group_1__0__Impl"


    // $ANTLR start "rule__Data__Group_1__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:623:1: rule__Data__Group_1__1 : rule__Data__Group_1__1__Impl ;
    public final void rule__Data__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:627:1: ( rule__Data__Group_1__1__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:628:2: rule__Data__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Data__Group_1__1__Impl_in_rule__Data__Group_1__11234);
            rule__Data__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__Group_1__1"


    // $ANTLR start "rule__Data__Group_1__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:634:1: rule__Data__Group_1__1__Impl : ( ( rule__Data__DescriptionAssignment_1_1 ) ) ;
    public final void rule__Data__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:638:1: ( ( ( rule__Data__DescriptionAssignment_1_1 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:639:1: ( ( rule__Data__DescriptionAssignment_1_1 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:639:1: ( ( rule__Data__DescriptionAssignment_1_1 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:640:1: ( rule__Data__DescriptionAssignment_1_1 )
            {
             before(grammarAccess.getDataAccess().getDescriptionAssignment_1_1()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:641:1: ( rule__Data__DescriptionAssignment_1_1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:641:2: rule__Data__DescriptionAssignment_1_1
            {
            pushFollow(FOLLOW_rule__Data__DescriptionAssignment_1_1_in_rule__Data__Group_1__1__Impl1261);
            rule__Data__DescriptionAssignment_1_1();

            state._fsp--;


            }

             after(grammarAccess.getDataAccess().getDescriptionAssignment_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__Group_1__1__Impl"


    // $ANTLR start "rule__PlainText__Group__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:655:1: rule__PlainText__Group__0 : rule__PlainText__Group__0__Impl rule__PlainText__Group__1 ;
    public final void rule__PlainText__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:659:1: ( rule__PlainText__Group__0__Impl rule__PlainText__Group__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:660:2: rule__PlainText__Group__0__Impl rule__PlainText__Group__1
            {
            pushFollow(FOLLOW_rule__PlainText__Group__0__Impl_in_rule__PlainText__Group__01295);
            rule__PlainText__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__PlainText__Group__1_in_rule__PlainText__Group__01298);
            rule__PlainText__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlainText__Group__0"


    // $ANTLR start "rule__PlainText__Group__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:667:1: rule__PlainText__Group__0__Impl : ( RULE_ID ) ;
    public final void rule__PlainText__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:671:1: ( ( RULE_ID ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:672:1: ( RULE_ID )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:672:1: ( RULE_ID )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:673:1: RULE_ID
            {
             before(grammarAccess.getPlainTextAccess().getIDTerminalRuleCall_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PlainText__Group__0__Impl1325); 
             after(grammarAccess.getPlainTextAccess().getIDTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlainText__Group__0__Impl"


    // $ANTLR start "rule__PlainText__Group__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:684:1: rule__PlainText__Group__1 : rule__PlainText__Group__1__Impl ;
    public final void rule__PlainText__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:688:1: ( rule__PlainText__Group__1__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:689:2: rule__PlainText__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__PlainText__Group__1__Impl_in_rule__PlainText__Group__11354);
            rule__PlainText__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlainText__Group__1"


    // $ANTLR start "rule__PlainText__Group__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:695:1: rule__PlainText__Group__1__Impl : ( ( rule__PlainText__Alternatives_1 )* ) ;
    public final void rule__PlainText__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:699:1: ( ( ( rule__PlainText__Alternatives_1 )* ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:700:1: ( ( rule__PlainText__Alternatives_1 )* )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:700:1: ( ( rule__PlainText__Alternatives_1 )* )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:701:1: ( rule__PlainText__Alternatives_1 )*
            {
             before(grammarAccess.getPlainTextAccess().getAlternatives_1()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:702:1: ( rule__PlainText__Alternatives_1 )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==RULE_ID||(LA5_0>=15 && LA5_0<=18)) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:702:2: rule__PlainText__Alternatives_1
            	    {
            	    pushFollow(FOLLOW_rule__PlainText__Alternatives_1_in_rule__PlainText__Group__1__Impl1381);
            	    rule__PlainText__Alternatives_1();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);

             after(grammarAccess.getPlainTextAccess().getAlternatives_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlainText__Group__1__Impl"


    // $ANTLR start "rule__NAME__Group__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:716:1: rule__NAME__Group__0 : rule__NAME__Group__0__Impl rule__NAME__Group__1 ;
    public final void rule__NAME__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:720:1: ( rule__NAME__Group__0__Impl rule__NAME__Group__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:721:2: rule__NAME__Group__0__Impl rule__NAME__Group__1
            {
            pushFollow(FOLLOW_rule__NAME__Group__0__Impl_in_rule__NAME__Group__01416);
            rule__NAME__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__NAME__Group__1_in_rule__NAME__Group__01419);
            rule__NAME__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NAME__Group__0"


    // $ANTLR start "rule__NAME__Group__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:728:1: rule__NAME__Group__0__Impl : ( RULE_UPID ) ;
    public final void rule__NAME__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:732:1: ( ( RULE_UPID ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:733:1: ( RULE_UPID )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:733:1: ( RULE_UPID )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:734:1: RULE_UPID
            {
             before(grammarAccess.getNAMEAccess().getUPIDTerminalRuleCall_0()); 
            match(input,RULE_UPID,FOLLOW_RULE_UPID_in_rule__NAME__Group__0__Impl1446); 
             after(grammarAccess.getNAMEAccess().getUPIDTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NAME__Group__0__Impl"


    // $ANTLR start "rule__NAME__Group__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:745:1: rule__NAME__Group__1 : rule__NAME__Group__1__Impl ;
    public final void rule__NAME__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:749:1: ( rule__NAME__Group__1__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:750:2: rule__NAME__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__NAME__Group__1__Impl_in_rule__NAME__Group__11475);
            rule__NAME__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NAME__Group__1"


    // $ANTLR start "rule__NAME__Group__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:756:1: rule__NAME__Group__1__Impl : ( ( rulePlainText )? ) ;
    public final void rule__NAME__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:760:1: ( ( ( rulePlainText )? ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:761:1: ( ( rulePlainText )? )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:761:1: ( ( rulePlainText )? )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:762:1: ( rulePlainText )?
            {
             before(grammarAccess.getNAMEAccess().getPlainTextParserRuleCall_1()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:763:1: ( rulePlainText )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==RULE_ID) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:763:3: rulePlainText
                    {
                    pushFollow(FOLLOW_rulePlainText_in_rule__NAME__Group__1__Impl1503);
                    rulePlainText();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getNAMEAccess().getPlainTextParserRuleCall_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NAME__Group__1__Impl"


    // $ANTLR start "rule__Import__Group__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:777:1: rule__Import__Group__0 : rule__Import__Group__0__Impl rule__Import__Group__1 ;
    public final void rule__Import__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:781:1: ( rule__Import__Group__0__Impl rule__Import__Group__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:782:2: rule__Import__Group__0__Impl rule__Import__Group__1
            {
            pushFollow(FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__01538);
            rule__Import__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Import__Group__1_in_rule__Import__Group__01541);
            rule__Import__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__0"


    // $ANTLR start "rule__Import__Group__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:789:1: rule__Import__Group__0__Impl : ( 'import' ) ;
    public final void rule__Import__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:793:1: ( ( 'import' ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:794:1: ( 'import' )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:794:1: ( 'import' )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:795:1: 'import'
            {
             before(grammarAccess.getImportAccess().getImportKeyword_0()); 
            match(input,22,FOLLOW_22_in_rule__Import__Group__0__Impl1569); 
             after(grammarAccess.getImportAccess().getImportKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__0__Impl"


    // $ANTLR start "rule__Import__Group__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:808:1: rule__Import__Group__1 : rule__Import__Group__1__Impl ;
    public final void rule__Import__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:812:1: ( rule__Import__Group__1__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:813:2: rule__Import__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__11600);
            rule__Import__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__1"


    // $ANTLR start "rule__Import__Group__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:819:1: rule__Import__Group__1__Impl : ( ( rule__Import__ImportedNamespaceAssignment_1 ) ) ;
    public final void rule__Import__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:823:1: ( ( ( rule__Import__ImportedNamespaceAssignment_1 ) ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:824:1: ( ( rule__Import__ImportedNamespaceAssignment_1 ) )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:824:1: ( ( rule__Import__ImportedNamespaceAssignment_1 ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:825:1: ( rule__Import__ImportedNamespaceAssignment_1 )
            {
             before(grammarAccess.getImportAccess().getImportedNamespaceAssignment_1()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:826:1: ( rule__Import__ImportedNamespaceAssignment_1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:826:2: rule__Import__ImportedNamespaceAssignment_1
            {
            pushFollow(FOLLOW_rule__Import__ImportedNamespaceAssignment_1_in_rule__Import__Group__1__Impl1627);
            rule__Import__ImportedNamespaceAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getImportAccess().getImportedNamespaceAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__Group__1__Impl"


    // $ANTLR start "rule__QualifiedName__Group__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:840:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
    public final void rule__QualifiedName__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:844:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:845:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__01661);
            rule__QualifiedName__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__01664);
            rule__QualifiedName__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__0"


    // $ANTLR start "rule__QualifiedName__Group__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:852:1: rule__QualifiedName__Group__0__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:856:1: ( ( RULE_ID ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:857:1: ( RULE_ID )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:857:1: ( RULE_ID )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:858:1: RULE_ID
            {
             before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__QualifiedName__Group__0__Impl1691); 
             after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__0__Impl"


    // $ANTLR start "rule__QualifiedName__Group__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:869:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
    public final void rule__QualifiedName__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:873:1: ( rule__QualifiedName__Group__1__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:874:2: rule__QualifiedName__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__11720);
            rule__QualifiedName__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__1"


    // $ANTLR start "rule__QualifiedName__Group__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:880:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
    public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:884:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:885:1: ( ( rule__QualifiedName__Group_1__0 )* )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:885:1: ( ( rule__QualifiedName__Group_1__0 )* )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:886:1: ( rule__QualifiedName__Group_1__0 )*
            {
             before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:887:1: ( rule__QualifiedName__Group_1__0 )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==23) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:887:2: rule__QualifiedName__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl1747);
            	    rule__QualifiedName__Group_1__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);

             after(grammarAccess.getQualifiedNameAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__1__Impl"


    // $ANTLR start "rule__QualifiedName__Group_1__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:901:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
    public final void rule__QualifiedName__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:905:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:906:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__01782);
            rule__QualifiedName__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__01785);
            rule__QualifiedName__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__0"


    // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:913:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
    public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:917:1: ( ( '.' ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:918:1: ( '.' )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:918:1: ( '.' )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:919:1: '.'
            {
             before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            match(input,23,FOLLOW_23_in_rule__QualifiedName__Group_1__0__Impl1813); 
             after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__0__Impl"


    // $ANTLR start "rule__QualifiedName__Group_1__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:932:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
    public final void rule__QualifiedName__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:936:1: ( rule__QualifiedName__Group_1__1__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:937:2: rule__QualifiedName__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__11844);
            rule__QualifiedName__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__1"


    // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:943:1: rule__QualifiedName__Group_1__1__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:947:1: ( ( RULE_ID ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:948:1: ( RULE_ID )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:948:1: ( RULE_ID )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:949:1: RULE_ID
            {
             before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__QualifiedName__Group_1__1__Impl1871); 
             after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__1__Impl"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:964:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
    public final void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:968:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:969:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
            {
            pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__0__Impl_in_rule__QualifiedNameWithWildcard__Group__01904);
            rule__QualifiedNameWithWildcard__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__1_in_rule__QualifiedNameWithWildcard__Group__01907);
            rule__QualifiedNameWithWildcard__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:976:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
    public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:980:1: ( ( ruleQualifiedName ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:981:1: ( ruleQualifiedName )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:981:1: ( ruleQualifiedName )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:982:1: ruleQualifiedName
            {
             before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__QualifiedNameWithWildcard__Group__0__Impl1934);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0__Impl"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:993:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl ;
    public final void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:997:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:998:2: rule__QualifiedNameWithWildcard__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__1__Impl_in_rule__QualifiedNameWithWildcard__Group__11963);
            rule__QualifiedNameWithWildcard__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1004:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( ( '.*' )? ) ;
    public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1008:1: ( ( ( '.*' )? ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1009:1: ( ( '.*' )? )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1009:1: ( ( '.*' )? )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1010:1: ( '.*' )?
            {
             before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopAsteriskKeyword_1()); 
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1011:1: ( '.*' )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==24) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1012:2: '.*'
                    {
                    match(input,24,FOLLOW_24_in_rule__QualifiedNameWithWildcard__Group__1__Impl1992); 

                    }
                    break;

            }

             after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopAsteriskKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1__Impl"


    // $ANTLR start "rule__Model__ImportsAssignment_0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1028:1: rule__Model__ImportsAssignment_0 : ( ruleImport ) ;
    public final void rule__Model__ImportsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1032:1: ( ( ruleImport ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1033:1: ( ruleImport )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1033:1: ( ruleImport )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1034:1: ruleImport
            {
             before(grammarAccess.getModelAccess().getImportsImportParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleImport_in_rule__Model__ImportsAssignment_02034);
            ruleImport();

            state._fsp--;

             after(grammarAccess.getModelAccess().getImportsImportParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__ImportsAssignment_0"


    // $ANTLR start "rule__Model__PackageAssignment_1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1043:1: rule__Model__PackageAssignment_1 : ( rulePackage ) ;
    public final void rule__Model__PackageAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1047:1: ( ( rulePackage ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1048:1: ( rulePackage )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1048:1: ( rulePackage )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1049:1: rulePackage
            {
             before(grammarAccess.getModelAccess().getPackagePackageParserRuleCall_1_0()); 
            pushFollow(FOLLOW_rulePackage_in_rule__Model__PackageAssignment_12065);
            rulePackage();

            state._fsp--;

             after(grammarAccess.getModelAccess().getPackagePackageParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__PackageAssignment_1"


    // $ANTLR start "rule__Package__NameAssignment_1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1058:1: rule__Package__NameAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__Package__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1062:1: ( ( ruleQualifiedName ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1063:1: ( ruleQualifiedName )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1063:1: ( ruleQualifiedName )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1064:1: ruleQualifiedName
            {
             before(grammarAccess.getPackageAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Package__NameAssignment_12096);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getPackageAccess().getNameQualifiedNameParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__NameAssignment_1"


    // $ANTLR start "rule__Package__DataAssignment_3"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1073:1: rule__Package__DataAssignment_3 : ( ruleData ) ;
    public final void rule__Package__DataAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1077:1: ( ( ruleData ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1078:1: ( ruleData )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1078:1: ( ruleData )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1079:1: ruleData
            {
             before(grammarAccess.getPackageAccess().getDataDataParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleData_in_rule__Package__DataAssignment_32127);
            ruleData();

            state._fsp--;

             after(grammarAccess.getPackageAccess().getDataDataParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Package__DataAssignment_3"


    // $ANTLR start "rule__Data__NameAssignment_0"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1088:1: rule__Data__NameAssignment_0 : ( ruleNAME ) ;
    public final void rule__Data__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1092:1: ( ( ruleNAME ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1093:1: ( ruleNAME )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1093:1: ( ruleNAME )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1094:1: ruleNAME
            {
             before(grammarAccess.getDataAccess().getNameNAMEParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleNAME_in_rule__Data__NameAssignment_02158);
            ruleNAME();

            state._fsp--;

             after(grammarAccess.getDataAccess().getNameNAMEParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__NameAssignment_0"


    // $ANTLR start "rule__Data__DescriptionAssignment_1_1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1103:1: rule__Data__DescriptionAssignment_1_1 : ( rulePlainText ) ;
    public final void rule__Data__DescriptionAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1107:1: ( ( rulePlainText ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1108:1: ( rulePlainText )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1108:1: ( rulePlainText )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1109:1: rulePlainText
            {
             before(grammarAccess.getDataAccess().getDescriptionPlainTextParserRuleCall_1_1_0()); 
            pushFollow(FOLLOW_rulePlainText_in_rule__Data__DescriptionAssignment_1_12189);
            rulePlainText();

            state._fsp--;

             after(grammarAccess.getDataAccess().getDescriptionPlainTextParserRuleCall_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Data__DescriptionAssignment_1_1"


    // $ANTLR start "rule__Import__ImportedNamespaceAssignment_1"
    // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1118:1: rule__Import__ImportedNamespaceAssignment_1 : ( ruleQualifiedNameWithWildcard ) ;
    public final void rule__Import__ImportedNamespaceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1122:1: ( ( ruleQualifiedNameWithWildcard ) )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1123:1: ( ruleQualifiedNameWithWildcard )
            {
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1123:1: ( ruleQualifiedNameWithWildcard )
            // ../sk.scerbak.ucl.datamodel.ui/src-gen/sk/scerbak/ucl/datamodel/ui/contentassist/antlr/internal/InternalDatamodel.g:1124:1: ruleQualifiedNameWithWildcard
            {
             before(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedNameWithWildcard_in_rule__Import__ImportedNamespaceAssignment_12220);
            ruleQualifiedNameWithWildcard();

            state._fsp--;

             after(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Import__ImportedNamespaceAssignment_1"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleModel_in_entryRuleModel61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleModel68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group__0_in_ruleModel94 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackage_in_entryRulePackage121 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePackage128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Package__Group__0_in_rulePackage154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleData_in_entryRuleData181 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleData188 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Data__Group__0_in_ruleData214 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlainText_in_entryRulePlainText243 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePlainText250 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlainText__Group__0_in_rulePlainText276 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNAME_in_entryRuleNAME303 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNAME310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NAME__Group__0_in_ruleNAME336 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport363 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImport370 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__0_in_ruleImport396 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName423 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName430 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName456 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard483 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__0_in_ruleQualifiedNameWithWildcard516 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__PlainText__Alternatives_1552 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__PlainText__Alternatives_1570 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__PlainText__Alternatives_1590 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__PlainText__Alternatives_1610 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__PlainText__Alternatives_1630 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group__0__Impl_in_rule__Model__Group__0662 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_rule__Model__Group__1_in_rule__Model__Group__0665 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__ImportsAssignment_0_in_rule__Model__Group__0__Impl692 = new BitSet(new long[]{0x0000000000400002L});
    public static final BitSet FOLLOW_rule__Model__Group__1__Impl_in_rule__Model__Group__1723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__PackageAssignment_1_in_rule__Model__Group__1__Impl750 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Package__Group__0__Impl_in_rule__Package__Group__0784 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Package__Group__1_in_rule__Package__Group__0787 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__Package__Group__0__Impl815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Package__Group__1__Impl_in_rule__Package__Group__1846 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_rule__Package__Group__2_in_rule__Package__Group__1849 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Package__NameAssignment_1_in_rule__Package__Group__1__Impl876 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Package__Group__2__Impl_in_rule__Package__Group__2906 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Package__Group__3_in_rule__Package__Group__2909 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__Package__Group__2__Impl937 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Package__Group__3__Impl_in_rule__Package__Group__3968 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Package__DataAssignment_3_in_rule__Package__Group__3__Impl997 = new BitSet(new long[]{0x0000000000000022L});
    public static final BitSet FOLLOW_rule__Package__DataAssignment_3_in_rule__Package__Group__3__Impl1009 = new BitSet(new long[]{0x0000000000000022L});
    public static final BitSet FOLLOW_rule__Data__Group__0__Impl_in_rule__Data__Group__01050 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_rule__Data__Group__1_in_rule__Data__Group__01053 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Data__NameAssignment_0_in_rule__Data__Group__0__Impl1080 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Data__Group__1__Impl_in_rule__Data__Group__11110 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Data__Group_1__0_in_rule__Data__Group__1__Impl1137 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Data__Group_1__0__Impl_in_rule__Data__Group_1__01172 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Data__Group_1__1_in_rule__Data__Group_1__01175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Data__Group_1__0__Impl1203 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Data__Group_1__1__Impl_in_rule__Data__Group_1__11234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Data__DescriptionAssignment_1_1_in_rule__Data__Group_1__1__Impl1261 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlainText__Group__0__Impl_in_rule__PlainText__Group__01295 = new BitSet(new long[]{0x0000000000078010L});
    public static final BitSet FOLLOW_rule__PlainText__Group__1_in_rule__PlainText__Group__01298 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__PlainText__Group__0__Impl1325 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlainText__Group__1__Impl_in_rule__PlainText__Group__11354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlainText__Alternatives_1_in_rule__PlainText__Group__1__Impl1381 = new BitSet(new long[]{0x0000000000078012L});
    public static final BitSet FOLLOW_rule__NAME__Group__0__Impl_in_rule__NAME__Group__01416 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__NAME__Group__1_in_rule__NAME__Group__01419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_UPID_in_rule__NAME__Group__0__Impl1446 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NAME__Group__1__Impl_in_rule__NAME__Group__11475 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlainText_in_rule__NAME__Group__1__Impl1503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__01538 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Import__Group__1_in_rule__Import__Group__01541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Import__Group__0__Impl1569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__11600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Import__ImportedNamespaceAssignment_1_in_rule__Import__Group__1__Impl1627 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__01661 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__01664 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__QualifiedName__Group__0__Impl1691 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__11720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl1747 = new BitSet(new long[]{0x0000000000800002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__01782 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__01785 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__QualifiedName__Group_1__0__Impl1813 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__11844 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__QualifiedName__Group_1__1__Impl1871 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__0__Impl_in_rule__QualifiedNameWithWildcard__Group__01904 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__1_in_rule__QualifiedNameWithWildcard__Group__01907 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__QualifiedNameWithWildcard__Group__0__Impl1934 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__1__Impl_in_rule__QualifiedNameWithWildcard__Group__11963 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__QualifiedNameWithWildcard__Group__1__Impl1992 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImport_in_rule__Model__ImportsAssignment_02034 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackage_in_rule__Model__PackageAssignment_12065 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Package__NameAssignment_12096 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleData_in_rule__Package__DataAssignment_32127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNAME_in_rule__Data__NameAssignment_02158 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlainText_in_rule__Data__DescriptionAssignment_1_12189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildcard_in_rule__Import__ImportedNamespaceAssignment_12220 = new BitSet(new long[]{0x0000000000000002L});

}